# encoding=utf-8
import os


class Global:
    app_version = '1.0.1'
    app_running = True
    is_windows = True if os.name == 'nt' else False
    time_sort = True
    play_sound = True
    app_font = '黑体' if is_windows else 'UKai'
    default_pos = (650, 100)                                    # app init display in this position
    app_width = 650                                             # app gui width
    head_height = 43                                            # head fm height
    foot_height = 22                                            # foot fm height
    title_height = 26                                           # title height in body fm
    todo_width = 54                                             # todo text width（字数）
    todo_height = 28                                            # one todo height
    window_height = 0 if is_windows else 37                     # system title window height
    bd_height = 0 if is_windows else 4                          # TitleFrame outer bd height
    todo_ipady = 2 if is_windows else 0                         # windows下字体高度比较小，todo label button‘撑不起来’
    app_height = head_height + foot_height + title_height + bd_height   # app gui height
    detail_width = app_width                                    # todo detail window width
    detail_height = 550 if is_windows else 635                  # todo detail window height
    about_height = 180 if is_windows else 200                   # about window height
    settings_height = 200
    light_fg = 'Black'
    light_bg = 'Gray85'
    dark_fg = 'Snow'
    dark_bg = 'Gray20'
    current_theme = ('dark', '', '')                            # theme, bg, fg
    prio_map_fg = {                                             # `优先级`todo前景色表
        0: 'DeepPink',
        1: 'DarkOrange',
        2: 'DarkTurquoise'
    }
    todo_data_file = 'json/todos.json'
    settings_file = 'json/settings.json'
    tip_sound_file = 'img/tips.mp3'
    todo_data = {}
    todo_timer = {}
    todo_eg_lines = '''这是普通文本
*这是斜体文本*
**这是粗体文本**
***这是斜体加粗文本***
<RED> 这是红色字体
<GREEN> 这是绿色字体
<BLUE> 这是蓝色字体
<PURPLE> 这是紫色字体
<CYAN> 这是青色字体
<ORANGE> 这是橙色字体
<GOLDEN> 这是金色字体
<GREY> 这是灰色字体
> 这是标注
<RED> > 这是红色标注
# 这是一级标题
<RED> ## 这是红色二级标题
### > 这是三级标注标题
######## 标题一共有八级,这是八级标题
: 这是tab开头行
- 这是1类
- 这是2类
> - 这是标注1类
<GREEN> > - 这是绿色标注2类
URL链接可以直接点击访问
https://www.baidu.com
- [ ] 这是未选项 (只能放在最后行)
- [x] 这是已选项 (只能放在最后行)
'''

    about_info = '''v%s

既是一款待办任务提醒工具，又是一款闹钟；
同时是一款定时任务调度器 (类似Windows的计划任务和Linux的crontab)。


Copyright©2022 Bingo. All Rights Reserved.
''' % app_version

    @classmethod
    def reset_app_height(cls):
        cls.app_height = cls.head_height + cls.foot_height + cls.title_height + \
                         len(cls.todo_data) * cls.todo_height + cls.bd_height

